package com.lxw.manage.course.service;

import com.lxw.framework.domain.course.CourseBase;
import com.lxw.framework.domain.course.CoursePic;
import com.lxw.framework.domain.course.Teachplan;
import com.lxw.framework.domain.course.ext.CourseInfo;
import com.lxw.framework.domain.course.ext.TeachplanNode;
import com.lxw.framework.domain.course.request.CourseListRequest;
import com.lxw.framework.model.response.QueryResponseResult;
import com.lxw.framework.model.response.QueryResult;
import com.lxw.framework.model.response.ResponseResult;

import java.util.List;


public interface ICourseService {

    /**
     * 通过课程id查询课程计划
     * @param courseId
     * @return
     */
    TeachplanNode findTeachplanList(String courseId);

    /**
     * 添加课程计划
     * @param teachplan
     */
    ResponseResult addTeachplan(Teachplan teachplan);

    /**
     * 分页查询课程列表
     * @param page
     * @param size
     * @param courseListRequest
     * @return
     */
    QueryResponseResult findCourseList(Integer page, Integer size, CourseListRequest courseListRequest);

    /**
     * 根据id查询teachplan信息
     * @param id
     * @return
     */
    Teachplan findTeachplanById(String id);

    /**
     * 更新课程计划
     * @param teachplan
     * @return
     */
    ResponseResult editTeachplan(Teachplan teachplan);

    /**
     * 根据Id删除课程计划
     * @param id
     * @return
     */
    ResponseResult delTeachplanById(String id);

    /**
     * 添加课程
     * @param courseBase
     * @return
     */
    ResponseResult addCourseBase(CourseBase courseBase);

    /**
     * 通过id查询课程基本信息
     * @param courseId
     * @return
     */
    CourseBase getCourseFormById(String courseId);

    /**
     * 更新课程信息
     * @return
     */
    ResponseResult updateCoursebase(String courseId, CourseBase courseBase);


    /**
     * 根据ID 查询课程营销
     * @param courseId
     * @return
     */
    CourseBase getCourseBaseById(String courseId);

    /**
     * 添加课程图片
     * @param courseId
     * @param fileId
     * @return
     */
    ResponseResult addCoursePic(String courseId, String fileId);

    /**
     * 根据课程ID查询照片
     * @param courseId
     * @return
     */
    CoursePic getCoursePicById(String courseId);

    /**
     * 根据课程ID删除照片
     * @param courseId
     * @return
     */
    ResponseResult delCoursePic(String courseId);
}
